const { resolve } = require('path')
const Webpack = require('webpack')
/*
    使用dll技术对于第三方库进行单独打包，比如jQuery react vue 等
    当运行 webpack 命令时，默认是查找的文件是 webpack.config.js
    所以我们如果想让本文件的配置生效就需要改成这个命令进行运行【webpack --config webpack.dll.js】
*/
module.exports = {
    entry:{
        // 最终打包生产的 [name] -->  jquery
        // ['jquery'] --> 要打包的库是 jquery
        jquery:['jquery']
    },
    output:{
        filename:'[name].js',
        path: resolve(__dirname,'dll'),
        library:'[name]_[hash]', // 打包的库里面向外面暴露出去的内容叫什么名字
    },
    plugins:[
        // 打包生成一个 manifest.json --》 提供和jquery映射
        // Webpack.DllPlugin 插件是将第三方插件进行单独打包-------这里对应着 webpack.config.js 中的 Webpack.DllReferencePlugin 插件
        new Webpack.DllPlugin({
            name:'[name]_[hash]',//映射库的暴露的内容名称叫什么
            path:resolve(__dirname,'dll/manifest.json')
        })
    ],
    mode: 'production', // 生产模式
}